home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 2.toast / pc / sample code / quicktime / quicktimeintro / wiredsprites / start code / qtwiredsprites.h < prev   
Encoding:
Text File  |  2000-10-06  |  3.7 KB  |  139 lines

  1. //////////
  2. //
  3. //    File:        QTWiredSprites.c
  4. //
  5. //    Contains:    QuickTime wired sprites support for QuickTime movies.
  6. //                This file is used for BOTH MacOS and Windows.
  7. //
  8. //    Written by:    Sean Allen
  9. //    Revised by:    Chris Flick and Tim Monroe
  10. //                Based (heavily!) on the existing MakeActionSpriteMovie.c code written by Sean Allen.
  11. //
  12. //    Copyright:    © 1997-1998 by Apple Computer, Inc., all rights reserved.
  13. //
  14. //    Change History (most recent first):
  15. //
  16. //       <1>         03/25/97    rtm        first file; integrated existing code with shell framework
  17. //       
  18. //////////
  19.  
  20. //////////
  21. //
  22. // header files
  23. //
  24. //////////
  25.  
  26. #include <Endian.h>
  27. #include <FixMath.h>
  28. #include <Fonts.h>
  29. #include <Movies.h>
  30. #include <Processes.h>
  31. #include <QuickTimeComponents.h>
  32. #include <Resources.h>
  33. #include <Script.h>
  34.  
  35. #ifndef _WIREDSPRITEUTILITIES_
  36. #include "WiredSpriteUtilities.h"
  37. #endif
  38.  
  39. #ifndef _SPRITEUTILITIES_
  40. #include "SpriteUtilities.h"
  41. #endif
  42.  
  43. #ifndef __ENDIANUTILITIES__
  44. #include "EndianUtilities.h"
  45. #endif
  46.  
  47. #include "ComApplication.h"
  48.  
  49. #if TARGET_OS_MAC
  50. #include "MacFramework.h"
  51. #endif
  52.  
  53. #if TARGET_OS_WIN32
  54. #include "WinFramework.h"
  55. #endif
  56.  
  57.  
  58. //////////
  59. //
  60. // constants
  61. //
  62. //////////
  63.  
  64. #define kSpriteTrackWidth                    320
  65. #define kSpriteTrackHeight                    240
  66.  
  67. #define kPenguinWidth                        92
  68. #define kPenguinHeight                        102
  69. #define kStartEndButtonWidth                36
  70. #define kStartEndButtonHeight                19
  71. #define kNextPrevButtonWidth                28
  72. #define kNextPrevButtonHeight                19
  73.  
  74. #define kGoToBeginningButtonUp                10000
  75. #define kGoToBeginningButtonDown            10001
  76. #define kGoToEndButtonUp                    10002
  77. #define kGoToEndButtonDown                    10003
  78. #define kGoToPrevButtonUp                    10004
  79. #define kGoToPrevButtonDown                    10005
  80. #define kGoToNextButtonUp                    10006
  81. #define kGoToNextButtonDown                    10007
  82. #define kPenguinForward                        20000
  83. #define kPenguinLeft                        20001
  84. #define kPenguinRight                        20002
  85. #define kPenguinClosed                        20003
  86. #define kWalkDownRightCycleStart            20004
  87. #define kWalkDownRightCycleEnd                20015
  88. #define kPenguinWalkCycleLength                (kWalkDownRightCycleEnd - kWalkDownRightCycleStart + 1)
  89. #define kPenguinFlapCycleStart                30000
  90. #define kPenguinFlapCycleEnd                30005
  91. #define kPenguinFlapCycleLength                (kPenguinFlapCycleEnd - kPenguinFlapCycleStart + 1)
  92.  
  93. #define kGoToBeginningButtonUpIndex            1
  94. #define kGoToBeginningButtonDownIndex        2
  95. #define kGoToEndButtonUpIndex                3
  96. #define kGoToEndButtonDownIndex                4
  97. #define kGoToPrevButtonUpIndex                5
  98. #define kGoToPrevButtonDownIndex            6
  99. #define kGoToNextButtonUpIndex                7
  100. #define kGoToNextButtonDownIndex            8
  101. #define kPenguinForwardIndex                9
  102. #define kPenguinLeftIndex                    10
  103. #define kPenguinRightIndex                    11
  104. #define kPenguinClosedIndex                    12
  105. #define kPenguinDownRightCycleStartIndex    13
  106. #define kPenguinDownRightCycleEndIndex        (kPenguinDownRightCycleStartIndex + kPenguinWalkCycleLength - 1)
  107.  
  108. #define kSpriteMediaTimeScale                600
  109. #define kSpriteMediaFrameDuration            20
  110. #define kSpriteMediaFramesPerSecond            (kSpriteMediaTimeScale / kSpriteMediaFrameDuration)
  111.  
  112. #define kGoToBeginningSpriteID                1
  113. #define kGoToPrevSpriteID                    2
  114. #define kGoToNextSpriteID                    3
  115. #define kGoToEndSpriteID                    4
  116. #define kPenguinOneSpriteID                    5
  117. #define kPenguinTwoSpriteID                    6
  118.  
  119. #define kNumOverrideSamples                    (2 * kPenguinWalkCycleLength)
  120.  
  121. #define kPenguinStateVariableID                1
  122. #define kButtonStateOne                        0
  123. #define kButtonStateTwo                        1
  124.  
  125. #define kWiredSavePrompt                    "Save Wired Sprite Movie As:"
  126. #define kWiredSaveFileName                    "WiredSprite.mov"
  127.  
  128.  
  129. //////////
  130. //
  131. // function prototypes
  132. //
  133. //////////
  134.  
  135. OSErr                            QTWired_CreateWiredSpritesMovie (void);
  136. OSErr                            QTWired_AddPenguinTwoConditionalActions (QTAtomContainer theContainer, QTAtom theEventAtom);
  137. OSErr                            QTWired_AddWraparoundMatrixOnIdle (QTAtomContainer theContainer);
  138. OSErr                            QTWired_AddCursorChangeOnMouseOver (QTAtomContainer theContainer, QTAtomID theID);
  139.